package com.fh.modules.system.service;

import java.util.List;
import java.util.Map;

import com.fh.common.web.AbstractService;
import com.fh.modules.system.entity.SysDict;
import com.fh.modules.system.entity.SysDictItem;
import com.fh.modules.system.model.SysDictTree;

/**
 * @author Qiu,Junda
 * @date 2019年4月3日
 * @description 字典表 服务类
 */
public interface ISysDictService extends AbstractService<SysDict> {

	public List<Map<String, String>> queryDictItemsByCode(String code);

	public String queryDictTextByKey(String code, String key);

	List<Map<String, Object>> queryTableDictItemsByCode(String table, String text, String code);

	String queryTableDictTextByKey(String table, String text, String code, String key);

	/**
	 * 根据字典类型删除关联表中其对应的数据
	 *
	 * @param sysDict
	 * @return
	 */
	boolean deleteByDictId(SysDict sysDict);

	/**
	 * 添加一对多
	 */
	public void saveMain(SysDict sysDict, List<SysDictItem> sysDictItemList);

	/**
	 * @author Qiu,Junda
	 * @date 2019年4月11日
	 * @description 根据父节点查询所有字典表
	 * @param parentId 父节点ID，可为空字符串（代表查询一级字典表）
	 * @return
	 */
	public List<SysDictTree> queryDictByParentId(String parentId);

	/**
	 * @author Qiu,Junda
	 * @date 2019年4月11日
	 * @description 删除数据字典
	 * @param id 数据字典表主键
	 */
	public void deleteDict(String id);

	/**
	 * @author Qiu,Junda
	 * @date 2019年4月11日
	 * @description 批量删除数据字典
	 * @param ids 主键通过英文逗号(,)分隔
	 */
	public void deleteDictByIds(String ids);
}
